import { ref, computed, onMounted } from 'vue'
import { defineStore } from 'pinia'
export const userBehavior = defineStore('userClickBehavior', () => {

    const userBehaviorData = ref({
        clicks: 0,//点击次数
        totalTimeSpent: 0,//总时间
        lastVisitedTime: Date.now(),//上次访问时间
    })

    //记录点击事件
    const recordClick = () => {
        userBehaviorData.value.clicks += 1; // 点击次数加1
        const currentTime = Date.now(); // 当前时间
        // 计算用户浏览时间
        const timeSpent = currentTime - userBehaviorData.value.lastVisitedTime; // 计算这次点击的浏览时间
        userBehaviorData.value.totalTimeSpent += timeSpent; // 累加浏览时间
        userBehaviorData.value.lastVisitedTime = currentTime; // 更新上次访问时间
    }
    //检测跳出率
    const monitorPageLeave = () => {
        const currentTime = Date.now();
        const timeSpent = currentTime - userBehaviorData.value.lastVisitedTime; // 计算离开时的浏览时间
        // 如果用户的浏览时间少于某个阈值（例如 3 秒），可以认为是跳出
        if (timeSpent < 3000) {
            console.log('用户跳出');
            // 这里可以增加逻辑来记录跳出率
        } else {
            console.log('用户留存');
        }
        // 将用户行为数据存储到 localStorage
        localStorage.setItem('userBehaviorData', JSON.stringify(userBehaviorData.value));
    }
    onMounted(() => {
        // 从 localStorage 中获取用户行为数据
        userBehaviorData.value = JSON.parse(localStorage.getItem('userBehaviorData')) || userBehaviorData.value;

        const searchResults = document.querySelectorAll('goods-item');

        searchResults.forEach(item => {
            item.addEventListener('click', ()=>{
                recordClick();
            });
        })
    })
    return {
        userBehaviorData,
        recordClick,
        monitorPageLeave
    }
}, {
    persist: true,
})
